После завершения этого раздела вы сможете сжимать и дедуплицировать данные на запоминающих устройствах с помощью VDO для оптимизации использования хранилища.
В Red Hat Enterprise Linux 8 входит драйвер оптимизатора виртуальных данных (Virtual Data Optimizer, VDO), который оптимизирует объем данных на блочных устройствах. VDO — это драйвер модуля сопоставления устройств Linux, который сокращает использование дискового пространства на блочных устройствах и минимизирует репликацию данных, экономя место на диске и повышая скорость передачи данных. VDO содержит два модуля ядра: kvdo для прозрачного управления сжатием данных и UDS для дедупликации.
kvdo
UDS
Уровень VDO размещается поверх существующего блочного запоминающего устройства, например устройства RAID или локального диска. Эти блочные устройства также могут быть зашифрованными. Уровни хранилища, например логические тома LVM и файловые системы, размещаются поверх устройства VDO. На следующей диаграмме показано расположение VDO в инфраструктуре, состоящей из виртуальных машин KVM, которые используют оптимизированные запоминающие устройства.
VDO уменьшает объем данных на запоминающих устройствах в три этапа.
Устранение нулевых блоков. Этот процесс отфильтровывает блоки данных, содержащие только нули (0), и записывает информацию о таких блоках только в метаданные. Ненулевые блоки данных затем передаются на следующий этап обработки. На этом этапе в устройствах VDO активируется функция динамического выделения места.
Дедупликация. Этот процесс убирает избыточные блоки данных. Когда вы создаете несколько копий одних и тех же данных, VDO выявляет дублирующиеся блоки данных и обновляет метаданные, чтобы использовать эти дубликаты как ссылки на исходный блок и не создавать избыточных блоков. Модуль ядра универсальной службы дедупликации (Universal Deduplication Service, UDS) проверяет избыточность данных по своим метаданным. Этот модуль ядра поставляется вместе с VDO.
Сжатие. Модуль ядра kvdo сжимает блоки данных с использованием алгоритма LZ4 и группирует их в блоки размером 4 КБ.
Логические устройства, создаваемые с помощью VDO, называются томами VDO. Тома VDO похожи на разделы диска: можно форматировать тома под нужный тип файловой системы и монтировать как обычную файловую систему. Том VDO можно использовать как физический том LVM.
Чтобы создать том VDO, необходимо указать блочное устройство и имя логического устройства, по которому пользователь будет его опознавать. При желании можно указать логический размер тома VDO. Логический размер может превышать физический размер фактического блочного устройства.
Поскольку к томам VDO применяется динамическое выделение места, пользователи видят только используемое логическое пространство и не знают о фактически доступном физическом пространстве. Если при создании тома не указать логический размер, VDO примет за него фактический физический размер. Соотношение 1:1 для логического и физического размеров способствует повышению производительности, но при этом пространство хранилища используется менее эффективно. В зависимости от потребностей инфраструктуры необходимо выбрать, что приоритетнее ― производительность или эффективное использование пространства.
Если логический размер тома VDO превышает фактический физический размер, необходимо отслеживать фактическое использование тома с помощью команды vdostats --verbose.
Включение VDO
Установите пакеты VDO и kmod-kvdo, чтобы включить VDO в системе.
[root@host ~]# yum install vdo kmod-kvdo ...output omitted... Is this ok [y/N]: y ...output omitted... Complete!
[root@host ~]#
yum install vdo kmod-kvdo
Is this ok [y/N]:
y
Создание тома VDO
Используйте команду vdo create, чтобы создать том VDO.
[root@host ~]# vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=50G ...output omitted...
vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=50G
/dev/vdd
50
Если не указать логический размер, том VDO получит размер его физического устройства.
После создания тома VDO можно отформатировать его под нужный тип файловой системы и смонтировать в иерархию файловой системы своей машины.
Анализ тома VDO
Используйте команду vdo status для анализа тома VDO. Эта команда отображает отчет о системе VDO и статусе тома VDO в формате YAML. Она также показывает атрибуты тома VDO. Используйте опцию --name=, чтобы указать имя конкретного тома. Если опустить имя тома, в выводе команды vdo status будет показан статус всех томов VDO.
--name=
[root@host ~]# vdo status --name=vdo1 ...output omitted...
vdo status --name=vdo1
Команда vdo list отображает список запущенных томов VDO. Вы можете запускать и останавливать тома VDO с помощью команд vdo start и vdo stop соответственно.
Дополнительную информацию см. в главе Getting started with VDO руководства Red Hat Enterprise Linux 8 Deduplicating and Compressing Storage Guide: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/deduplicating_and_compressing_storage/
Знакомство с VDO